﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.WindowsAzure;
using Dokan;

namespace AzureDriveCore
{
	public abstract class AzureControllerBase
	{
		protected CloudStorageAccount CloudStorageAccount { get; private set; }

		public AzureControllerBase(CloudStorageAccount cloudStorageAccount)
		{
			this.CloudStorageAccount = cloudStorageAccount;
		}

		public abstract ControllerType Type { get; }

		public virtual RequestContextBase CreateRequest(string path)
		{
			return null;
		}

		public abstract bool DirectoryExists(string path);

		public abstract FileOrDirectoryResult GetFileOrDirectoryResult(string path);

		public abstract List<FileInformation> FindFiles(string path);
	}
}
